package Adapt.InterfaceAdapter;
/**Java中的设计模式 - 适配器模式（接口适配器）
        应用场景：不想实现接口中的所有方法
 */
//接口
interface Port{
    // 远程SSH端口22
    public void SSH();

    // 网络端口80
    public void NET();

    // Tomcat容器端口8080
    public void Tomcat();

    // Mysql数据库端口3306
    public void Mysql();

    // Oracle数据库端口1521
    public void Oracle();

    // 文件传输FTP端口21
    public void FTP();

}
//继承但是不实现这些接口
abstract class Wrapper implements Port{
    // 远程SSH端口22
    public void SSH(){};

    // 网络端口80
    public void NET(){};

    // Tomcat容器端口8080
    public void Tomcat(){};

    // Mysql数据库端口3306
    public void Mysql(){};

    // Oracle数据库端口1521
    public void Oracle(){};

    // 文件传输FTP端口21
    public void FTP(){};
}
//实现部分接口：完成特定的功能
/*
* 聊天服务：需要实现NET以及FTP服务
* */
class Chat extends Wrapper{
    @Override
    public void NET() {
        System.out.println("连接到NET");
    }

    @Override
    public void FTP() {
        System.out.println("连接到FTP服务");
    }
}
/**
 * 网站服务器
 * 需要Tomcat容器，Mysql数据库，网络服务，远程服务
 */
class Server extends Wrapper{

    @Override
    public void SSH(){ System.out.println("Connect success!"); };

    @Override
    public void NET(){ System.out.println("Hello WWW!"); };

    @Override
    public void Tomcat(){ System.out.println("Tomcat 9 is running!"); };

    @Override
    public void Mysql(){ System.out.println("Mysql is running!"); };
}
public class Start {
    private static final Port chat = new Chat();
    private static final Port server = new Server();
    public static void main(String[] args) {
        chat.FTP();
        chat.FTP();
        server.SSH();
        server.Mysql();
        server.Tomcat();
        server.NET();
    }
}
